Method for controlling wireless communication devices when operating in a wireless communication network

ABSTRACT

A method of controlling a wireless communication device to dynamically adapt and update roaming parameters stored in the device when operating in a wireless network. The method includes: determining a first roaming metric (M 1 ) for a first wireless access point (AP) of the network when the device is in communication with the first AP; determining a second roaming metric (M 2 ) for a second wireless AP of the network when the device has roamed to the second AP; and determining an adaptation value by subtracting M 2  from M 1 . When the adaptation value is not zero, first roaming parameters associated with the first wireless AP are updated, based on the adaptation value and stored first roaming parameters associated with the first wireless AP and second roaming parameters associated with the second wireless AP are updated based on the adaptation value and stored second roaming parameters associated with the second wireless AP.

FIELD

The present specification relates generally to wireless communicationdevices when operating in wireless communication networks, andspecifically to a method of controlling a wireless communication deviceto dynamically adapt and update roaming parameters stored in the devicewhen operating in a wireless communication network.

BACKGROUND

Wireless communication devices, such as mobile devices, smartphones,personal digital assistants (PDAs), and laptop computers, may beconfigured to communicate with wireless communication networks. Suchdevices may, for example, communicate via access points (APs) ofwireless local area networks (WLANs) in accordance with Institute ofElectrical and Electronics Engineers (IEEE) 802.11 standards or thelike. Wireless communication devices may communicate with WLANs whichare private WLANs of an enterprise or public WLANs such as hotspots.When a wireless communication device operates within a wirelesscommunication network, such as, for example, a WLAN, and communicateswith access points (APs) of the wireless communication network, thewireless communication device monitors a radio signal strength indicator(RSSI) from the APs. As the wireless communication device moves withinthe wireless communication network, the wireless communication devicecan move outside the range of an AP of the wireless communicationnetwork, which causes the wireless communication device to sense adecrease in RSSI from the AP. When the RRSI monitored by the wirelesscommunication devices falls below a threshold value, the wirelesscommunication device roams to another AP of the wireless communicationnetwork and establishes communication therewith. Known methods ofcontrolling wireless communication devices operating in wirelesscommunication networks generally only consider the RRSI when determiningwhether to roam to another AP of the wireless communication network.

BRIEF DESCRIPTIONS OF THE DRAWINGS

For a better understanding of the various implementations describedherein and to show more clearly how they may be carried into effect,reference will now be made, by way of example only, to the accompanyingdrawings in which:

FIG. 1 is a block diagram of a wireless communication device inaccordance with an example implementation of the present specification.

FIG. 2 is a front view of a wireless communication device in accordancewith an example implementation of the present specification.

FIG. 3 is block diagram of a wireless communication network which maycommunicate with wireless communication device of FIG. 1.

FIG. 4 is a flowchart of a method of controlling a wirelesscommunication device operating in a wireless communication network inaccordance with an example implementation of the present specification.

FIGS. 5A and 5B are tables illustrating the results for the method ofthe present specification implemented on a wireless communication deviceoperating in a wireless communication network.

DETAILED DESCRIPTION

An aspect of the present specification provides a wireless communicationdevice that includes an antenna and a wireless network interfacecontroller (WNIC) for transmitting and receiving, via the antenna, radiofrequency (RF) signals to and from access points of a wirelesscommunication network; a memory storing roaming parameters associatedwith each respective one of the APs in the wireless communicationnetwork; and a processor operably coupled to the wireless networkinterface controller and the memory. The processor is configured to: (a)determine a first roaming metric (M₁) for the first wireless when thewireless communication device is in communication with the firstwireless AP; (b) determine a second roaming metric (M₂) for a secondwireless AP of the wireless communication network when the device roamsto the second wireless AP; and (c) determine an adaptation value bysubtracting the M₂ from the M₁. The processor is further configured to:(d) update first roaming parameters associated with the first wirelessAP based on the adaptation value and stored first roaming parametersassociated with the first wireless AP and update second roamingparameters associated with the second wireless AP based on theadaptation value and stored second roaming parameters associated withthe second wireless AP.

According to another aspect of the present specification, the processormay be further configured to: (e) swap the first roaming parameters andM₁ associated with the first wireless AP with the second roamingparameters and M₂ associated with the second wireless AP, respectively;(f) designate the second wireless AP as the first wireless AP; and, (g)repeat (b) through (f).

According to another aspect of the present specification, the processormay be configured to determine M₁ based on a first double average valueof a first radio strength indicator (RSSI) and a first double averagevalue of a first in-phase and quadrature (IQ) noise for the firstwireless AP, and determine M₂ based on a second double average value ofa second radio strength indicator (RSSI) and a second double averagevalue of a second in-phase and quadrature (IQ) noise for the secondwireless AP.

According to another aspect of the present specification, the processormay be further configured to: determine M₁ by: (i) measuring, for apre-selected time period, a discrete first set of samples of a firstradio signal strength indicator (RSSI) and a first in-phase andquadrature (IQ) noise for the first wireless AP; (ii) determining afirst average value of the first RSSI and a first average value of thefirst IQ noise from the discrete first set of samples captured over apre-selected time period; (vii) repeating (v) and (iii) for apre-selected number of realizations to obtain the first double averageof the first RSSI and the first double average of the first IQ noise;and (iv) combining the first double average of the RSSI and the firstdouble average of the IQ noise using a selected constant to form M₁ anddetermine M₂ by: (v) measuring, for a pre-selected time period, adiscrete second set of samples of a second radio signal strengthindicator (RSSI) and a second in-phase and quadrature (IQ) noise for thesecond wireless AP; (vi) determining a second average value of thesecond RSSI and a second average value of the second IQ noise from thediscrete second set of samples captured over a pre-selected time period;(vii) repeating (v) and (vi) for a pre-selected number of realizationsto obtain the second double average of the second RSSI and the seconddouble average of the second IQ noise; and (vii) combining the seconddouble average of the RSSI and the second double average of the IQ noiseusing a selected constant to form M₂.

According to another aspect of the present specification, the firstroaming parameters associated with first wireless AP include a firstroam trigger parameter and a first roam delta parameter, the secondroaming parameters associated with the second wireless AP include asecond roam trigger parameter and a second roam delta parameter. Theprocessor may be further configured to: update the first roamingparameters associated with the first wireless AP by setting the firstroam delta parameter to a difference between the second roam triggerparameter and the first roam trigger parameter and by setting the firstroam trigger parameter to a sum of the first roam trigger parameter andthe adaptation value multiplied by 3 db; and update the second roamingparameters associated with the second wireless AP by setting the secondroam delta parameter to a negative value of the first roam deltaparameter and by setting the second roam trigger parameter to adifference between the second roam trigger parameter and the adaptationvalue multiplied by 3 db.

According to another aspect of the present specification, M₁ may bedetermined according to:

$M_{1} = {\frac{1}{N_{w}}{\sum\limits_{N_{w}}\left\lbrack {{\frac{1}{N_{t}}{\sum\limits_{N_{t}}{\alpha \times {Normalized}\mspace{14mu} {IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}}}} + {\left( {1 - \alpha} \right) \times {Normalized}\mspace{14mu} {{RSSI}\left( {w,t} \right)}}} \right\rbrack}}$

wherein 0≦M₁≦1, 0≦α≦1, N_(t) is a number of discrete measurements over apre-selected time period, N_(w) is a number of pre-selected observationsor realizations, notation (w,t) designates a discrete time sample indext and a realization number index w of each measurement; and M₂ may bedetermined according to:

$M_{2} = {\frac{1}{N_{w}}{\sum\limits_{N_{w}}\left\lbrack {{\frac{1}{N_{t}}{\sum\limits_{N_{t}}{\alpha \times {Normalized}\mspace{14mu} {IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}}}} + {\left( {1 - \alpha} \right) \times {Normalized}\mspace{14mu} {{RSSI}\left( {w,t} \right)}}} \right\rbrack}}$

wherein 0≦M₂≦1, 0≦α≦1, N_(t) is a number of discrete measurements over apre-selected time period, N_(w) is a number of pre-selected observationsor realizations, and notation (w,t) designates a discrete time sampleindex t and a realization number index w of each measurement.

According to another aspect of the present specification, the processormay be further configured to: prior to determining that the device hasroamed to the second wireless AP in the wireless communication network,periodically update M₁ by summing a current value for the first roamingmetric (M_(1t1)) multiplied by a forgetting factor (f) and a previousvalue for the first roaming metric (M_(1t0)) multiplied by (1−f),wherein 0<=f<=1; and to adjust the forgetting factor (f) at each updateof the M₁ by a factor equal to 2*(f−0.5) times a difference between theprevious value of the first roaming metric (M_(1t0)) and the currentvalue of the first roaming metric (M_(1t1)) when an absolute value ofthis factor is larger than a predetermined constant.

According to another aspect of the present specification, the processormay be further configured to: prior to determining that the adaptationvalue is not equal to zero, periodically update M₂ by summing a currentvalue for the second roaming metric (M_(2t1)) multiplied by theforgetting factor (f) and a previous value for the first roaming metric(M_(2t0)) multiplied by (1−f); and to adjust the forgetting factor (f)at each update of the M₂ by a factor equal to 2*(f−0.5) times adifference between the previous value of the second roaming metric(M_(1t1)) and the current value of the second roaming metric (M_(1t0))when an absolute value of this factor is larger than a predeterminedconstant.

According to another aspect of the present specification, the processoris further configured to determine that the device has roamed to asecond wireless AP in the wireless communication network by determiningthat a roaming condition has been met. The roaming condition isdetermined to be met when the RSSI for the first wireless AP is lessthan or equal to a scan trigger threshold and the RSSI for the firstwireless AP is less than the value of the first roam trigger parameterand a RSSI for the second wireless AP is greater than the sum of theRRSI of the first wireless AP and the first roam delta parameter.

According to another aspect of an implementation, the presentspecification provides, a method of controlling a wireless communicationdevice to dynamically update roaming parameters associated with eachrespective one of a plurality of APs in the wireless communicationnetwork that are stored in a memory of the wireless communication devicewhen the wireless communication device is operating in the wirelesscommunication network, the method comprising: at a processor of thewireless communication device: (a) determining a first roaming metric(M₁) for a first wireless AP of the wireless communication network whenthe wireless communication device is in communication with the firstwireless AP; (b) determining a second roaming metric (M₂) for a secondwireless AP of the wireless communication network when the wirelesscommunication device roams to the second wireless AP; (c) determining anadaptation value by subtracting the M₂ from the M₁; and (d) in responseto determining that the adaptation value is not equal to zero, updatingfirst roaming parameters associated with the first wireless AP based onthe adaptation value and stored first roaming parameters associated withthe first wireless AP and updating second roaming parameters associatedwith the second wireless AP based on the adaptation value and storedsecond roaming parameters associated with the second wireless AP.

According to another aspect of an implementation, the presentspecification provides a computer-readable medium storing a computerprogram, wherein execution of the computer program is for controlling awireless communication device to dynamically update roaming parametersassociated with each respective one of a plurality of APs in thewireless communication network that are stored in a memory of thewireless communication device when the wireless communication device isoperating in the wireless communication network, the method comprising:(a) determining a first roaming metric (M₁) for a first wireless AP ofthe wireless communication network when the wireless communicationdevice is in communication with the first wireless AP; (b) determining asecond roaming metric (M₂) for a second wireless AP of the wirelesscommunication network when the wireless communication device has roamedto the second wireless AP; (c) determining an adaptation value bysubtracting the M₂ from the M₁; and (d) in response to determining thatthe adaptation value is not equal to zero, updating first roamingparameters associated with the first wireless AP based on the adaptationvalue and stored first roaming parameters associated with the firstwireless AP and updating second roaming parameters associated with thesecond wireless AP based on the adaptation value and stored secondroaming parameters associated with the second wireless AP.

In this specification, elements may be described as “configured to”perform one or more functions or “configured for” such functions. Ingeneral, an element that is configured to perform or configured forperforming a function is enabled to perform the function, or is suitablefor performing the function, or is adapted to perform the function, oris operable to perform the function, or is otherwise capable ofperforming the function.

It is understood that for the purpose of this specification, language of“at least one of X, Y, and Z” and “one or more of X, Y and Z” can beconstrued as X only, Y only, Z only, or any combination of two or moreitems X, Y, and Z (e.g., XYZ, XY, YZ, ZZ, and the like). Similar logiccan be applied for two or more items in any occurrence of “at least one. . . ” and “one or more . . . ” language.

For simplicity and clarity of illustration, reference numerals may berepeated among the figures to indicate corresponding or analogouselements. Numerous details are set forth to provide an understanding ofthe implementations described herein. The implementations may bepracticed without these details. In other instances, well-known methods,procedures, and components have not been described in detail to avoidobscuring the implementations described. The specification is not to beconsidered as limited to the scope of the implementations describedherein.

The specification generally relates to an electronic device, which inthe implementation described herein is a mobile or handheld, wirelesscommunication device. Examples of mobile or handheld, wirelesscommunication devices include smartphones, wireless organizers, personaldigital assistants (PDAs), wirelessly enabled notebook computers, tabletcomputers, laptop computers, e-readers, and the like.

The Wireless communication device may be a two-way communication devicewith advanced data communication capabilities including the capabilityto communicate with other wireless communication devices or computersystems through a network of transceiver stations. Wirelesscommunication device may also have the capability to allow voicecommunication. Depending on the functionality provided by the wirelesscommunication device, it may be referred to as a data messaging device,a cellular telephone with data messaging capabilities, a wirelessInternet appliance, or a data communication device (with or withouttelephony capabilities).

A block diagram of an example implementation of a wireless communicationdevice 100 is shown in FIG. 1. Wireless communications device 100includes multiple components, such as a processor 102 that controls theoverall operation of wireless communications device 100. Communicationfunctions, including data and voice communications, are performedthrough a communication subsystem 104 of wireless communication device100. Communication subsystem 104 includes at least one antenna 103 and awireless communication network interface controller (WNIC) 105 forperforming voice and data communications. Data received by wirelesselectronic device 100 can be decompressed and decrypted by a decoder 106of wireless communications device 100, operating according to anysuitable decompression techniques (e.g. Yang-Kieffer (YK) decompression,and other known techniques) and encryption techniques (e.g. using anencryption technique such as Data Encryption Standard (DES), Triple DES,or Advanced Encryption Standard (AES)). Communication subsystem 104receives messages from and sends messages to a wireless network 200. Inthis example implementation of wireless communication device 100,communication subsystem 104 is configured in accordance with the GlobalSystem for Mobile Communication (GSM) and General Packet Radio Services(GPRS) standards. GSM/GPRS wireless network is used worldwide and it isexpected that these standards will be superseded eventually by EnhancedData GSM Environment (EDGE) and Universal Mobile TelecommunicationsService (UMTS). New standards are still being defined, but it isbelieved that they will have similarities to the network behaviourdescribed herein, and it will also be understood by persons skilled inthe art that the implementations described herein are intended to useany other suitable standards that are developed in the future. Thewireless link connecting communication subsystem 104 with wirelessnetwork 200 represents one or more different Radio Frequency (RF)channels, operating according to defined protocols specified forGSM/GPRS communications. With newer network protocols, these channelsare capable of supporting both circuit switched voice communications andpacket switched data communications.

Although wireless network 200 associated with wireless communicationsdevice 100 includes both a GSM/GPRS wireless communications network andWLAN 300 in the example implementation, other wireless networks may alsobe associated with wireless communications device 100 in variantimplementations. The different types of wireless networks that may beemployed include, for example, data-centric networks, voice-centricnetworks and dual-mode networks that can support both voice and datacommunications over the same physical base stations. Examples ofdual-mode networks that can support both voice and data communicationsover the same physical base stations include, but are not limited to,Code Division Multiple Access (CDMA) or CDMA2000 networks, GSM/GPRSnetworks (as mentioned above), third-generation (3G) networks such asEDGE and UMTS, and fourth-generation (4G) networks such as Long TermEvolution (LTE) networks. Examples of data-centric networks includewired local area networks (LANs), WiMax networks, and packet-switch datanetworks, such as, for example, Mobitex™ and DataTAC™. Examples ofvoice-centric data networks include Personal Communication Systems (PCS)networks like GSM and Time Division Multiple Access (TDMA) systems.

Processor 102 is coupled to and interacts with other components, such asRandom Access Memory (RAM) 108, memory 110, a touchscreen display 112.Touchscreen display 112 may be any suitable touch-sensitive display,such as a capacitive, resistive, infrared, surface acoustic wave (SAW)touch-sensitive display, strain gauge, optical imaging, dispersivesignal technology, acoustic pulse recognition, and so forth, as known inthe art. A capacitive touch-sensitive display includes a capacitivetouch-sensitive overlay. The overlay may be an assembly of multiplelayers in a stack which may include, for example, a substrate, a groundshield layer, a barrier layer, one or more capacitive touch sensorlayers separated by a substrate or other barrier, and a cover. Thecapacitive touch sensor layers may be any suitable material, such aspatterned indium tin oxide (ITO).

Processor 102 interacts with touchscreen display 112 via an electroniccontroller (not shown) of touchscreen display 112 to display or render agraphical user interface (GUI) that includes information, such as text,characters, symbols, icons, and other items. Processor 102 may alsointeract with an orientation sensor, such as accelerometer 114, todetect direction of gravitational forces or gravity-induced reactionforces, for example, to determine the orientation of wirelesscommunication device 100. Processor 102 may include a single processoror multiple processors.

Processor 102 is also coupled to and interacts with an auxiliaryinput/output (I/O) subsystem 116, a data port 118, a speaker 120, amicrophone 122, short-range communications subsystem 124, and otherdevice subsystems 126.

Wireless communication device 100 can send and receive communicationsignals over wireless network 200 after network registration oractivation procedures have been completed. Network access is associatedwith a subscriber or user of wireless communication device 100. Toidentify a subscriber according to the present implementation, wirelesscommunication device 100 uses a SIM/RUIM card 128 (i.e. SubscriberIdentity Module or a Removable User Identity Module) inserted into aSIM/RUIM interface 130 for communication with a network such as wirelessnetwork 200. SIM/RUIM card 128 is one type of a conventional “smartcard” that can be used to identify a subscriber of wirelesscommunication device 100 and to personalize the wireless communicationdevice 100, among other things. In the present implementation, wirelesscommunication device 100 is not fully operational for communication withwireless network 200 without SIM/RUIM card 128. By inserting SIM/RUIMcard 128 into SIM/RUIM interface 130, a subscriber can access allsubscribed services. Services may include: web browsing and messagingsuch as e-mail, voice mail, Short Message Service (SMS), and MultimediaMessaging Services (MMS). More advanced services may include: point ofsale, field service and sales force automation. SIM/RUIM card 128includes a processor and memory for storing information. Once SIM/RUIMcard 128 is inserted into SIM/RUIM interface 130, it is coupled toprocessor 102. In order to identify the subscriber, SIM/RUIM card 128can include some user parameters such as an International MobileSubscriber Identity (IMSI). When using SIM/RUIM card 128 a subscriber isnot necessarily bound by any single physical wireless communicationdevice. SIM/RUIM card 128 may store additional subscriber informationfor wireless communication device as well, including datebook (orcalendar) information and recent call information. Alternatively, useridentification information can also be programmed into memory 110.

Wireless communications device 100 includes a battery interface 132 forreceiving one or more rechargeable batteries 134. In at least someimplementations, battery 134 can be, for example, a smart battery withan embedded microprocessor. Battery interface 132 is coupled to aregulator (not shown), which assists battery 134 in providing power V+to the components of wireless communication device 100. Although currenttechnology makes use of a battery, future technologies such as microfuel cells may provide power to wireless communication electronic device100.

Optionally, wireless communications device 100 may also include a port(not shown) to an external power supply and a power adaptor (not shown),such as an alternating current to direct current (AC-to-DC) adaptor,that provides power to the components of wireless communications device100.

Wireless communications device 100 also includes an operating system 136and software programs or applications 138 which are described in moredetail below. Operating system 136 and software programs or applications138 that are executed by processor 102 are typically stored in apersistent store such as memory 110, which may be a flash memory, aread-only memory (ROM), or similar storage element (not shown). Thoseskilled in the art will appreciate that portions of operating system 136and software programs or applications 138, such as specific deviceapplications, or parts thereof, may be temporarily loaded into avolatile store such as RAM 108. Other software programs can also beincluded, as is well known to those skilled in the art.

Software programs or applications 138 control basic device operations,including data and voice communication applications, will normally beinstalled on the wireless communication during its manufacture. Othersoftware programs or applications include a message application (notshown) that can be any suitable software program that allows a user ofwireless communication device 100 to send and receive electronicmessages. Various alternatives exist for the message application (notshown) as is well known to those skilled in the art. Messages that havebeen sent or received by the user are typically stored in memory 110 ofwireless communication device 100 or some other suitable storage elementin wireless communication device 100. In at least some implementations,some of the sent and received messages may be stored remotely fromwireless communication device 100 such as in a data store of anassociated host system that wireless communication device 100communicates with.

Software applications 138 can further include a device state application(not shown), a Personal Information Manager (PIM) application (notshown), and other suitable applications (not shown). The device stateapplication provides persistence, i.e. the device state applicationensures that important device data is stored in persistent memory, suchas memory 110, so that the data is not lost when wireless communicationdevice 100 is turned off or loses power.

PIM application includes functionality for organizing and managing dataitems of interest to the user, such as, but not limited to, e-mail,contacts, calendar events, voice mails, appointments, and task items.PIM application has the ability to send and receive data items viawireless network 200. PIM data items may be seamlessly integrated,synchronized, and updated via the wireless network 200 with wirelesscommunication device 100 subscriber's corresponding data items storedand/or associated with a host computer system. This functionalitycreates a mirrored host computer on wireless communication device 100with respect to such items. This can be particularly advantageous whenthe host computer system is the portable electronic device subscriber'soffice computer system.

Wireless communication device 100 also includes a connect application(not shown), and an information technology (IT) policy application (notshown). Connect application implements the communication protocols thatare required for wireless communication device 100 to communicate withthe wireless infrastructure and any host system, such as an enterprisesystem, that the wireless communication device 100 is authorized tointerface with.

Connect application includes a set of application program interfaces(APIs) that can be integrated with wireless communication device 100 toallow wireless communication device 100 to use any number of servicesassociated with the enterprise system. Connect application allowswireless communication device 100 to establish an end-to-end secure,authenticated communication pipe with the host system. A subset ofapplications for which access is provided by the connect application canbe used to pass IT policy commands from the host system to wirelesselectronic device 100. This can be done in a wireless or wired manner.These instructions can then be passed to the IT policy application tomodify the configuration of wireless communication device 100.Alternatively, in some cases, the IT policy update can also be done overa wired connection.

Other types of software applications can also be installed on wirelesscommunication device 100. These software applications can be third partyapplications, which are added after the manufacture of wirelesscommunication device 100. Examples of third party applications includegames, calculators, utilities, etc.

Additional applications can be loaded onto the wireless communicationdevice 100 through at least one of wireless network 200, auxiliary I/Osubsystem 116, data port 118, short-range communications subsystem 124,or any other suitable device subsystem 126. This flexibility inapplication installation increases the functionality of wirelesscommunication device 100 and may provide enhanced on-device functions,communication-related functions, or both. For example, securecommunication applications may enable electronic commerce functions andother such financial transactions to be performed using wirelesscommunication device 100.

Data port 118 enables a subscriber to set preferences through anexternal device or software application and extends the capabilities ofwireless communication device 100 by providing for information orsoftware downloads to wireless communication device 100 other thanthrough a wireless communication network. The alternate download pathmay, for example, be used to load an encryption key onto wirelesscommunication device 100 through a direct and thus reliable and trustedconnection to provide secure device communication.

Data port 118 can be any suitable port that enables data communicationbetween wireless communication device 100 and another computing device.Data port 118 can be a serial or a parallel port. In someimplementations, data port 118 can be a USB port that includes datalines for data transfer and a supply line that can provide a chargingcurrent to charge battery 134 of wireless communication device 100.

Short-range communications subsystem 124 provides for communicationbetween wireless communication device 100 and different systems ordevices, without the use of wireless network 200. For example,short-range communications subsystem 124 may include an infrared deviceand associated circuits and components for short-range communication.Examples of short-range communication standards include standardsdeveloped by the Infrared Data Association (IrDA), Bluetooth, and the802.11 family of standards developed by the IEEE.

In use, a received signal such as a text message, an e-mail message, orweb page download is processed by communication subsystem 104 and inputto processor 102. Processor 102 then processes the received signal foroutput to touchscreen display 112 or alternatively to auxiliary I/Osubsystem 116. A subscriber may also compose data items, such as e-mailmessages, for example, using touchscreen display 112 and possiblyauxiliary I/O subsystem 116. Auxiliary I/O subsystem 116 may includedevices such as: a keyboard, such as, for example, a mechanical keyboardor a touch-sensitive keyboard, a mouse, track ball, infrared fingerprintdetector, or a roller wheel with dynamic button pressing capability. Acomposed item may be transmitted over wireless network 200 throughcommunication subsystem 104.

For voice communications, the overall operation of wirelesscommunication device 100 is substantially similar, except that thereceived signals are output to speaker 120, and signals for transmissionare generated by microphone 122. Alternative voice or audio I/Osubsystems 116, such as a voice message recording subsystem, can also beimplemented on the wireless communication device. Although voice oraudio signal output is accomplished primarily through speaker 120, thetouchscreen display can also be used to provide additional informationsuch as the identity of a calling party, duration of a voice call, orother voice call related information.

A front view of an example of wireless electronic device 100 is shown inFIG. 2. Wireless communication device 100 includes a body 202 thatincludes a back, sidewalls, and a front face 208. Touchscreen display112 is disposed in body 202 and exposed at front face 208 foruser-interaction.

Touchscreen display 112 may include a display area in which informationmay be displayed, and a non-display area extending around the peripheryof the display area. Information is not displayed in the non-displayarea, which is utilized to accommodate, for example, electronic tracesor electrical connections, adhesives or other sealants, and/orprotective coatings around the edges of the display area.

Reference is now made to FIG. 3, which illustrates a block diagram of anexample implementation of a wireless communication network that isincluded in wireless network 200. In the example implementation shown inFIG. 3, wireless communication network is a wireless local area network(WLAN) 300 operating in accordance with IEEE 802.11 standards. WLAN 300may be a private communication network of an enterprise (e.g. anorganization, a company, a corporation, etc.) or a public WiFi™ networkand operates in accordance with IEEE 802.11 standards.

WLAN 300 includes three wireless access points (APs) 305, 310, 315 thatwirelessly communicate with wireless communication device 100 overwireless links 320, 325, 330. Each wireless AP 305, 310, 315 sendscommunication signals, such as radio frequency (RF signals), to andreceives communication signals from the wireless communication device100 via antenna 103 and WNIC 105. Although WLAN 300 of FIG. 3 includesthree wireless APs, WLAN 300 may include other suitable numbers ofwireless APs. Each wireless AP 305, 310, 315 is connected to a router335 which is connected to the Internet 340. Wireless communicationdevice 100 is configured to automatically discover, associate with, andestablish communication with wireless APs 305, 310, 315. Wirelesscommunication device 100 identifies WLAN 300 with use of a wirelessnetwork identifier which is communicated from WLAN 300. The wirelessnetwork identifier may be, for example, a Set Service Identifier (SSID)or Extended SSID (ESSID).

When wireless communication device 100 is operating in wireless network200 and is communicating with WLAN 300 via one of wireless APs 305, 310,315, the router 335 may be configured to allow or deny access to thedata, applications, and/or functionality, as well as to allow or denyexternal access outside of WLAN 300 to Internet 340. Router 335 mayinclude a set of IP address filters which define a set of addresses thatare permissible/impermissible, if any at all, for access by wirelesscommunication device 100. Access by wireless communication device 100depends on whether or not wireless communication device 100 has beenauthorized and what access rights are given upon authorization.

For example, when wireless communication device 100 is operating in WLAN300 of wireless network 200, wireless communication device 100 sends arequest via an AP 305, 310, 315 to router 335, without first obtainingproper authorization. Router 335 is configured to receive the requestand to respond to wireless communication device 100 to provide data forproducing information (e.g. Web page information) which is rendered ontouchscreen display 112 of wireless communication device 100 via a Webbrowser application. The information may solicit a response from a user.For example, the information may solicit a user to register or loginwith user fields for entering a user name and/or password information.Router 335 identifies whether the received user response is sufficient(e.g. whether the user name and password match pre-stored user name andpassword information, whether the user payment is accepted, whether theuser acceptance is confirmed, etc.). If the user response is deemedsufficient, router 335 allows access to the data, applications, and/orfunctionality in or outside of wireless network 300.

WLAN 300 may provide or allow wireless communication device 100 toaccess various data and communication services. For example, WLAN 300may provide for communication access to Internet 340 via the Web browserapplication, or voice telephony communication service with use of Voiceover IP (VoIP) communication, or other communication services. For“push-type” data or message synchronization services, for example,wireless communication device 100 may be enabled to maintain datasynchronization with a server (not shown) of WLAN 300 for user data ofan application associated with a user account. The application ofwireless communication device 100 and the server may be or include, forexample, an electronic mail (e-mail) application program for thecommunication of e-mail messages.

Reference is now made to FIG. 4 to describe an example implementation ofa method 400 of controlling wireless communication device 100 todynamically adapt and update roaming parameters stored in wirelesscommunication device 100 when operating in wireless network 200 thatincludes WLAN 300. In this example implementation, wirelesscommunication device 100 stores, in memory 110, default values forroaming parameters for each wireless AP in WLAN 300 within whichwireless communication device 100 operates. The roaming parametersinclude a roam trigger parameter and roam delta parameter for each AP ina WLAN 300. The default values for the roam trigger and roam deltaparameters may be set by a manufacturer or an administrator of wirelesscommunication device 100.

Method 400 may be carried out by routines or subroutines of softwareexecuted by processor 102. Coding of software for carrying out forcarrying out such steps is well within the scope of a person of ordinaryskilled in the art having regard to the present specification. Method400 may contain additional or fewer processes than shown and described,and may be performed in a different order. Computer-readable codeexecutable by, for example, processor 102 of the wireless communicationdevice 100 to perform method 400, may be stored in a computer-readablemedium.

Regardless, it is to be emphasized, that method 400 of FIG. 4 need notbe performed in the exact sequence as shown, unless otherwise indicated;and likewise various blocks may be performed in parallel rather than insequence; hence the elements of method 400 of FIG. 4 are referred toherein as “blocks” rather than “steps”. It is also to be understood,however, that method 400 of FIG. 4 can be implemented on variations ofdevice 100 as well.

Method 400 begins at block 405 where wireless communication device 100monitors the RF signals received from wireless APs 305, 310, 315 in WLAN300, determines a radio signal strength indicator (RSSI) value for theRF signals from each wireless AP 305, 310, 315, and associates with andestablishes communication with the wireless AP 305, 310, 315 that hasthe highest radio signal strength indicator (RSSI) value. For thepurpose of the present example implementation, the wirelesscommunication device 100 first associates and communicates with wirelessAP 305, which is designated as a first wireless AP.

After the wireless communication device 100 is associated, and incommunication, with first wireless AP 305 at block 405, a first roamingmetric (M₁) for first wireless AP 305 is determined at block 410. Firstroaming metric (M₁) is then determined at block 415 by: (1) measuring,for a pre-selected time period, a discrete set of samples of a radiosignal strength indicator (RRSI) value for a wireless signal receivedfrom the first wireless AP 305; (2) measuring for the pre-selected timeperiod, a discrete set of samples of an in-phase and quadrature (IQ)noise value for the wireless signal received from the first wireless AP305; (3) determining an average value for the RSSI and the IQ noise fromthe discrete set of samples captured over the pre-selected time period;(4) repeating (1) to (3) a pre-selected number of times to obtain theaverage of a pre-selected number of observations or realizations of theaverage RSSI value and of the average IQ noise value; and (5) combiningthe double averaged RSSI value and the double averaged IQ noise valueusing a predetermined factor α.

In other words, first roaming metric (M₁) is determined as follows:

$\begin{matrix}{M_{1} = {\frac{1}{N_{w}}{\sum\limits_{N_{w}}\left\lbrack {{\frac{1}{N_{t}}{\sum\limits_{N_{t}}{\alpha \times {Normalized}\mspace{14mu} {IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}}}} + {\left( {1 - \alpha} \right) \times {Normalized}\mspace{14mu} {{RSSI}\left( {w,t} \right)}}} \right\rbrack}}} & (1)\end{matrix}$

where 0≦α≦1, N_(t) is the number of discrete measurements over thepre-selected time period, N_(w) is the number of pre-selectedobservations or realizations, and the notation (w,t) designates thediscrete time sample index t and the realization number index w of eachmeasurement.

The Normalized IQ noise (w,t) is determined in (1) as follows:

$\begin{matrix}{{{Normalized}\mspace{14mu} {IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}} = \frac{{{IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}} - {{IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}_{\min}}}{{{IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}_{\max}} - {{IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}_{\min}}}} & (2)\end{matrix}$

The Normalized RSSI(w,t) is determined in (1) as follows:

$\begin{matrix}{{{Normalize}\mspace{14mu} {{RSSInoise}\left( {w,t} \right)}_{\min}} = \frac{{{RSSI}\left( {w,t} \right)} - {RSSI}_{\min}}{{RSSI}_{\max} - {RSSI}_{\min}}} & (3)\end{matrix}$

After determining first roaming metric (M₁) at block 410, adetermination is made whether wireless communication device 100 hasroamed to another wireless AP 310, 315. Wireless communication device100 is determined to have roamed to another wireless AP, such as, forexample, wireless AP 310 (referred to herein as a second wireless AP)when a roaming condition is met at block 415. At block 415, the roamingcondition is determined to be met when three distinct conditions aresatisfied. That is, the roaming condition is determined to be met when:(1) the RSSI value for first wireless AP 305 is less than or equal to ascan trigger threshold value (i.e., a pre-selected threshold value thattriggers wireless communication device 100 performs a scan for availableAPs in the wireless communications network 300); (2) the RSSI value forfirst wireless AP 305 is less than the value of the roam triggerparameter for first wireless AP 305 retrieved from memory 110; and (3) aRSSI value for a second wireless AP 310 in WLAN 300 is greater than thesum of the RRSI value of first wireless AP 305 and the value of the roamdelta parameter retrieved from memory 110 for first wireless AP 305.

If the roaming condition is determined not to be met at block 415, themethod 400 returns to block 410 and first roaming metric M₁ isperiodically re-determined or updated. Optionally, first roaming metricM₁ may be re-determined or updated by combining the recalculated orupdated first roaming metric M_(1t1) with a previously determined firstroaming metric M_(1t0) using a forgetting factor f as follows:

$\begin{matrix}{M_{1} = {\frac{1}{N_{w}}{\sum\limits_{N_{w}}\left\lbrack {{f \times \frac{1}{N_{t\; 1}}{\sum\limits_{N_{t\; 1}}{M_{1}\left( {w,t} \right)}}} + {\left( {1 - f} \right) \times \frac{1}{N_{t\; 0}}{\sum\limits_{N_{t\; 0}}{M_{1}\left( {w,t} \right)}}}} \right\rbrack}}} & (4)\end{matrix}$

However, if the roaming condition is determined to be met at block 415,the method 400 proceeds to block 420. At block 420, wirelesscommunication device 100 roams to another wireless AP in WLAN 300, suchas, for example, wireless AP 310. When wireless communication device 100roams to wireless AP 310, wireless communication device 100 associateswith and establishes communication with wireless AP 310.

After wireless communication device 100 is associated, and incommunication, with the second wireless AP 310, the method proceeds toblock 425 to determine a second roaming metric (M₂) for the secondwireless AP 310. Second roaming metric (M₂) for the second wireless AP310 is determined at block 425 by: (1) measuring, for a pre-selectedtime period, a discrete set of samples of a radio signal strengthindicator (RRSI) value for a wireless signal received from the wirelessAP 310; (2) measuring, for the pre-selected time period, a discrete setof samples of an in-phase and quadrature (IQ) noise value for thewireless signal received from the second wireless AP 310; and (3)determining an average value for the RSSI and the IQ noise from thediscrete set of samples captured over the pre-selected time period. Themeasuring of the RRSI value and the IQ noise value for a pre-selectedtime period and the determining the average value for RSSI and IQ noiseover the pre-selected time period is repeated a pre-selected number oftimes to obtain average values for the RSSI and the IQ noise, and theseaverage values are combined using a predetermined constant α.

In other words, second roaming metric (M₂) is determined as follows:

$\begin{matrix}{M_{2} = {\frac{1}{N_{w}}{\sum\limits_{N_{w}}\left\lbrack {{\frac{1}{N_{t}}{\sum\limits_{N_{t}}{\alpha \times {Normalized}\mspace{14mu} {IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}}}} + {\left( {1 - \alpha} \right) \times {Normalized}\mspace{14mu} {{RSSI}\left( {w,t} \right)}}} \right\rbrack}}} & (5)\end{matrix}$

where 0≦α≦1, N_(t) is the number of discrete measurements over thepre-selected time period, N_(w) is the number of pre-selectedobservations or realizations, and the notation (w,t) designates thediscrete time sample index t and the realization number index w of eachmeasurement.

The Normalized IQ noise(w,t) for wireless AP 310 is determined inn (4)as follows:

$\begin{matrix}{{{Normalized}\mspace{14mu} {IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}} = \frac{{{IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}} - {{IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}_{\min}}}{{{IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}_{\max}} - {{IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}_{\min}}}} & (6)\end{matrix}$

The Normalized RSSI(w,t) for wireless AP 310 is determined in (4) asfollows:

$\begin{matrix}{{{Normalize}\mspace{14mu} {{RSSInoise}\left( {w,t} \right)}_{\min}} = \frac{{{RSSI}\left( {w,t} \right)} - {RSSI}_{\min}}{{RSSI}_{\max} - {RSSI}_{\min}}} & (7)\end{matrix}$

After second roaming metric (M₂) is determined at block 425, the method400 proceeds to block 430 where an adaptation value Δ is determined.Adaptation value Δ is determined as follows:

Δ=M ₁ −M ₂  (7)

After adaptation value Δ is determined at block 430, method 400 proceedsto block 435 to determine whether adaptation value Δ is equal to zero.When adaptation value Δ is determined to not equal to zero at block 435,method 400 proceeds to block 445 to update the roaming trigger and roamdelta parameters for first wireless AP 305 and the roaming trigger androam delta parameters for second wireless AP 310. The roam deltaparameter for first wireless AP 305 is updated at block 440 by settingthe roam delta parameter for first wireless AP 305 to a differencebetween the RRSI of first wireless AP 305 and the RRSI of secondwireless AP 310. The roam delta parameter for second wireless AP 310 isupdated at block 440 by setting the roam delta parameter for secondwireless AP 310 to a negative value of the roam delta parameter forfirst wireless AP 305. For example, if the roam delta parameter forfirst wireless AP 305 is +10 dBM, then the roam delta parameter forsecond wireless AP 310 is set to −10 dBm. Alternatively, if, forexample, the roam delta parameter for first wireless AP 305 is −10 dBM,then the roam delta parameter for second wireless AP 310 is set to +10dBm

After the roam delta parameters are updated at block 445, method 400proceeds to block 450 to store the updated first roaming metric (M₁) forfirst wireless AP 305, the updated second roaming metric (M₂) for secondwireless AP 310, the updated roam delta and roam trigger parameters forfirst wireless AP 305, and the updated roam delta and roam triggerparameters for second wireless AP 310. Method 400 then proceeds to block455 where the roam trigger parameter, the roam delta parameter, and thefirst roaming metric (M₁) for first wireless AP 305 are swapped with theroam trigger parameter, the roam delta parameter, and the second roamingmetric (M₂) for second wireless AP 310, respectively. Method 400 thenproceeds to block 460 where second wireless AP 310 is designated asfirst wireless AP. After designating second wireless AP 310 as the firstwireless AP, method 400 returns to 415 to determine whether a roamingcondition for first wireless AP (which is now wireless AP 310) is met.If the roaming condition for first wireless AP 310 is met, wirelesscommunication device 100 roams to another wireless AP in WLAN 300, suchas, for example, wireless AP 305 or wireless AP 315 in the presentimplementation. After roaming to wireless AP 315, for example, wirelesscommunication device 100 associates, and establishes communication, withwireless AP 315. Wireless communication device 100 also designateswireless AP 315 as the second wireless AP. Method 400 then repeatsblocks 425 through 460.

Optionally, when wireless communication device 100 is associated and incommunication with second wireless AP 310, and the roaming condition forsecond wireless AP 310 is not met at block 415, the second roamingmetric M₂ for second wireless AP 310 may be periodically updated byre-determining the second roaming metric M₂ by combining there-determined second roaming metric M_(2t1) with a previously determinedsecond roaming metric M_(2t0) using a forgetting factor f as follows:

$\begin{matrix}{M_{1} = {\frac{1}{N_{w}}{\sum\limits_{N_{w}}\left\lbrack {{f \times \frac{1}{N_{t\; 1}}{\sum\limits_{N_{t\; 1}}{M_{2}\left( {w,t} \right)}}} + {\left( {1 - f} \right) \times \frac{1}{N_{t\; 0}}{\sum\limits_{N_{t\; 0}}{M_{2}\left( {w,t} \right)}}}} \right\rbrack}}} & (4)\end{matrix}$

When the adaptation value Δ is determined to not equal to zero at block435, the method proceeds to block 440 where the wireless AP 310 isdesignated as the first wireless AP (now first wireless AP 310). Afterthe second wireless AP 310 is designated as the first wireless AP atblock 440, method 400 returns to block 410 and blocks 410 through 460are repeated.

Referring now to FIGS. 5A and 5B, tables illustrating the results for anexample of method 400 of the present specification implemented onwireless communication device 100 operating in wireless network 200. Inthe present example, wireless network 200 includes an LTE base stationoperating in band 7 and two symmetrically designed wireless APs that areoperating on WiFi™ channels 1 and 13. When wireless communication device100 is operating on the lowest channels of LTE bands, the proximity ofthe latter spectrum to higher WiFi™ channels 13 causes degradation ofthe data throughput in the downlink direction of the device. In thepresent example, the default roaming trigger parameter is set to −70dBm, the default roaming delta parameter is set to 10 dB, α is set to0.25, and the forgetting factor (f) is set to 0.5.

In the example shown in FIG. 5A, the cellular radio of wirelesscommunication device 100 is turned off. The two channels are behaving inthe same way and the method converges to a stable solution. From thetable shown in FIG. 5A, the optimal roaming trigger parameter for thefirst wireless AP is −70 dBm, the optimal roaming delta parameter forthe first wireless AP is 10 dB, and the optimal roaming scan triggerthreshold value for the first wireless AP is −70.4 dBm. Also, from thetable shown in FIG. 5A, the optimal roaming trigger parameter for secondwireless AP is −70 dBm, the optimal roaming delta parameter for secondwireless AP is 10 dB, the optimal roaming scan trigger threshold valuefor second wireless AP is −70.4 dBm.

In the example shown in FIG. 5B, the cellular radio of wirelesscommunication device 100 is on and wireless communication device 100 istransmitting and receiving LTE data traffic from the LTE base station.The method of the present specification converges to non-symmetricroaming parameters, which are, as shown in FIG. 5B: −70 dBm for the roamtrigger parameter of first wireless AP; −0.7 dB for the roam deltaparameter of first wireless AP; −76.4 dBm for the roam scan parameter offirst wireless AP; −60 dBm for the roam trigger parameter of secondwireless AP; 0 dB for the roam delta parameter of second wireless AP;and −61.4 dBm for the roam scan trigger threshold value of secondwireless AP.

Method 400 of the present specification mitigates interference whenwireless communication device 100 is operating in a noisy wirelessnetwork 200, thereby increasing the data transfer rate over a wirelesscommunication link between wireless communication device 100 and the APs305, 310, 315 of a wireless communications network. Further, method 400of the present specification maximizes the data throughput of a wirelesscommunication link between wireless communication device 100 and the APs305, 310, 315 by dynamically adapting the roaming parameters in thepresence of a changing network environment.

Although method 400 described in the present specification relates towireless communication device 100 operating in WLAN 300, method 400 canbe implemented in wireless communication devices operating in anysuitable wireless networks which allows wireless communication devicesto roam between APs of the wireless networks, such as, for examplecellular networks, and dual-mode networks.

Those skilled in the art will appreciate that in some implementations,the functionality of wireless communication device 100 can beimplemented using pre-programmed hardware or firmware elements (e.g.,application specific integrated circuits (ASICs), electrically erasableprogrammable read-only memories (EEPROMs), etc.), or other relatedcomponents. In other implementations, the functionality of wirelesscommunication device 100 can be achieved using a computing apparatusthat has access to a code memory (not depicted) which storescomputer-readable program code for operation of the computing apparatus.The computer-readable program code could be stored on a computerreadable storage medium which is fixed, tangible and readable directlyby these components, (e.g., removable diskette, CD-ROM, ROM, fixed disk,USB drive). Furthermore, the computer-readable program can be stored asa computer program product comprising a computer usable medium. Further,a persistent storage device can comprise the computer readable programcode. The computer-readable program code and/or computer usable mediumcan comprise a non-transitory computer-readable program code and/ornon-transitory computer usable medium. Alternatively, thecomputer-readable program code could be stored remotely buttransmittable to these components via a modem or other interface deviceconnected to a network (including, without limitation, the Internet)over a transmission medium. The transmission medium can be either anon-mobile medium (e.g., optical and/or digital and/or analogcommunications lines) or a mobile medium (e.g., microwave, infrared,free-space optical or other transmission schemes) or a combinationthereof.

A portion of the specification of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by any one of the patentdocument or patent specification, as it appears in the Patent andTrademark Office patent file or records, but otherwise reserves allcopyrights whatsoever

Persons skilled in the art will appreciate that there are yet morealternative implementations and modifications possible, and that theabove examples are only illustrations of one or more implementations.The scope, therefore, is only to be limited by the claims appendedhereto.

What is claimed is:
 1. A device comprising: an antenna; a wirelessnetwork interface controller (WNIC) configured to transmit and receive,via the antenna, radio frequency (RF) signals to and from access points(APs) of a wireless communication network; a memory storing roamingparameters associated with each respective one of the APs in thewireless communication network; a processor operably coupled to the WNICand the memory, the processor configured to: (a) determine a firstroaming metric (M₁) for a first wireless AP of the wirelesscommunication network when the device is in communication with the firstwireless AP; (b) determine a second roaming metric (M₂) for a secondwireless AP of the wireless communication network when the device roamsto the second wireless AP from the first wireless AP; (c) determine anadaptation value by subtracting the M₂ from the M₁; and (d) in responseto determining that the adaptation value is not equal to zero, updatefirst roaming parameters associated with the first wireless AP (305,310, 315) based on the adaptation value and stored first roamingparameters associated with the first wireless AP and update secondroaming parameters associated with the second wireless AP based on theadaptation value and stored second roaming parameters associated withthe second wireless AP.
 2. The device of claim 1, wherein the processoris further configured to: (e) swap the first roaming parameters and theM₁ associated with the first wireless AP with the second roamingparameters and the M₂ associated with the second wireless AP,respectively; (f) designate (460) the second wireless AP as the firstwireless AP; and, (g) repeat (b) through (f).
 3. The device of claim 1,wherein the M₁ is determined based on a first double average value of afirst radio strength indicator (RSSI) and a first double average valueof a first in-phase and quadrature (IQ) noise for the first wireless AP,and the M₂ is determined based on a second double average value of asecond radio strength indicator (RSSI) and a second double average valueof a second in-phase and quadrature (IQ) noise for the second wirelessAP.
 4. The device of claim 3, wherein the processor is furtherconfigured to: determine the M₁ by: (i) measuring, for a pre-selectedtime period, a discrete first set of samples of a first radio signalstrength indicator (RSSI) and a first in-phase and quadrature (IQ) noisefor the first wireless AP; (ii) determining a first average value of thefirst RSSI and a first average value of the first IQ noise from thediscrete first set of samples captured over the pre-selected timeperiod; (iii) repeating (i) and (ii) for a pre-selected number ofrealizations to obtain the first double average of the first RSSI andthe first double average of the first IQ noise; and (iv) combining thefirst double average of the first RSSI and the first double average ofthe first IQ noise using a selected constant to form the M₁; anddetermine the M₂ by: (v) measuring, for the pre-selected time period, adiscrete second set of samples of a second radio signal strengthindicator (RSSI) and a second in-phase and quadrature (IQ) noise for thesecond wireless AP; (vi) determining a second average value of thesecond RSSI and a second average value of the second IQ noise from thediscrete second set of samples captured over the pre-selected timeperiod; (vii) repeating (v) and (vi) for a pre-selected number ofrealizations to obtain the second double average of the second RSSI andthe second double average of the second IQ noise; and (vii) combiningthe second double average of the second RSSI and the second doubleaverage of the second IQ noise using a selected constant to form the M₂.5. The device of claim 1, wherein the first roaming parametersassociated with the first wireless AP include a first roam triggerparameter and a first roam delta parameter, the second roamingparameters associated with the second wireless AP include a second roamtrigger parameter and a second roam delta parameter and wherein theprocessor is further configured to: update the first roaming parametersassociated with the first wireless AP by setting the first roam deltaparameter to a difference between the second roam trigger parameter andthe first roam trigger parameter and by setting the first roam triggerparameter to a sum of the first roam trigger parameter and theadaptation value multiplied by 3 db; and update the second roamingparameters associated with the second wireless AP by setting the secondroam delta parameter to a negative value of the first roam deltaparameter and by setting the second roam trigger parameter to adifference between the second roam trigger parameter and the adaptationvalue multiplied by 3 db.
 6. The device of claim 1, wherein M₁ isdetermined according to:$M_{1} = {\frac{1}{N_{w}}{\sum\limits_{N_{w}}\left\lbrack {{\frac{1}{N_{t}}{\sum\limits_{N_{t}}{\alpha \times {Normalized}\mspace{14mu} {IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}}}} + {\left( {1 - \alpha} \right) \times {Normalized}\mspace{14mu} {{RSSI}\left( {w,t} \right)}}} \right\rbrack}}$wherein 0≦M₁≦1, 0≦α≦1, N_(t) is a number of discrete measurements overthe pre-selected time period, N_(w) is a number of pre-selectedobservations or realizations, notation (w,t) designates a discrete timesample index t and a realization number index w of each measurement; andwherein M₂ is determined according to:$M_{2} = {\frac{1}{N_{w}}{\sum\limits_{N_{w}}\left\lbrack {{\frac{1}{N_{t}}{\sum\limits_{N_{t}}{\alpha \times {Normalized}\mspace{14mu} {IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}}}} + {\left( {1 - \alpha} \right) \times {Normalized}\mspace{14mu} {{RSSI}\left( {w,t} \right)}}} \right\rbrack}}$wherein 0≦M₂ 1, 0≦α≦1, N_(t) is a number of discrete measurements over apre-selected time period, N_(w) is a number of pre-selected observationsor realizations, and notation (w,t) designates a discrete time sampleindex t and a realization number index w of each measurement.
 7. Thedevice of claim 1, wherein the processor is further configured to: priorto determining that the device (100) has roamed to the second wirelessAP in the wireless communication network, periodically update the M₁ bysumming a current value for the first roaming metric (M_(1t1))multiplied by a forgetting factor (f) and a previous value for the firstroaming metric (M_(1t0)) multiplied by (1−f), wherein 0<=f<=1; adjustthe forgetting factor (f) at each update of the M₁ by a factor equal to2*(f−0.5) times a difference between the previous value of the firstroaming metric (M_(1t0)) and the current value of the first roamingmetric (M_(1t1)) when an absolute value of this factor is larger than apredetermined constant; prior to determining the adaptation value is notequal to zero (435), periodically update the M₂ by summing a currentvalue for the second roaming metric (M_(2t1)) multiplied by a forgettingfactor (f) and a previous value for the first roaming metric (M_(2t0))multiplied by (1−f); and adjust the forgetting factor (f) at each updateof M₂ by a factor equal to 2*(f−0.5) times a difference between theprevious value of the second roaming metric (M_(1t1)) and the currentvalue of the second roaming metric (M_(1t0)) when an absolute value ofthis factor is larger than a predetermined constant.
 8. The device ofclaim 5, wherein the processor is further configured to determine thatthe device has roamed to a second wireless AP in the wirelesscommunication network by determining that a roaming condition has beenmet; and wherein the roaming condition is determined to be met when theRSSI for the first wireless AP is less than or equal to a scan triggerthreshold and the RSSI for the first wireless AP is less than the valueof the first roam trigger parameter and a RSSI for the second wirelessAP is greater than the sum of the RRSI of the first wireless AP and thefirst roam delta parameter.
 9. A method of controlling a wirelesscommunication device to dynamically update roaming parameters associatedwith each respective one of a plurality of APs in the wirelesscommunication network that are stored in a memory of the wirelesscommunication device when the wireless communication device is operatingin the wireless communication network, the method comprising: at aprocessor of the wireless communication device: (a) determining a firstroaming metric (M₁) for a first wireless AP of the wirelesscommunication network when the wireless communication device is incommunication with the first wireless AP; (b) determining a secondroaming metric (M₂) for a second wireless AP of the wirelesscommunication network when the wireless communication device roams tothe second wireless AP; (c) determining an adaptation value bysubtracting the M₂ from the M₁; and (d) in response to determining thatthe adaptation value is not equal to zero, updating first roamingparameters associated with the first wireless AP based on the adaptationvalue and stored first roaming parameters associated with the firstwireless AP and updating second roaming parameters associated with thesecond wireless AP based on the adaptation value and stored secondroaming parameters associated with the second wireless AP.
 10. Themethod of claim 9, further comprising: (e) swapping the first roamingparameters and the M₁ associated with the first wireless AP with thesecond roaming parameters and the M₂ associated with the second wirelessAP, respectively; (f) designating the second wireless AP as the firstwireless AP; and, (g) repeating (b) through (f).
 11. The method of claim9, wherein M₁ is determined based on a first double average value of afirst radio strength indicator (RSSI) and a first double average valueof a first in-phase and quadrature (IQ) noise for the first wireless AP,and M₂ is determined based on a second double average value of a secondradio strength indicator (RSSI) and a second double average value of asecond in-phase and quadrature (IQ) noise for the second wireless AP.12. The method of claim 11, wherein determining M₁ comprises: (i)measuring, for a pre-selected time period, a discrete first set ofsamples of a first radio signal strength indicator (RSSI) and a firstin-phase and quadrature (IQ) noise for the first wireless AP; (ii)determining a first average value of the first RSSI and a first averagevalue of the first IQ noise from the discrete first set of samplescaptured over the pre-selected time period; (iii) repeating (i) and (ii)for a pre-selected number of realizations to obtain the first doubleaverage of the first RSSI and the first double average of the first IQnoise; and (iv) combining the double average of the first RSSI and thedouble average of the first IQ noise using a selected constant to formM₁; and determining the M₂ comprises: (v) measuring, for a pre-selectedtime period, a discrete second set of samples of a second radio signalstrength indicator (RSSI) and a second in-phase and quadrature (IQ)noise for the second wireless AP; (vi) determining an average value ofthe second RSSI and an average value of the second IQ noise from thediscrete second set of samples captured over the pre-selected timeperiod; (vii) repeating (v) and (vi) for a pre-selected number ofrealizations to obtain the double average of the second RSSI and thedouble average of the second IQ noise; and (vii) combining the doubleaverage of the second RSSI and the double average of the second IQ noiseusing a selected constant to form M₂.
 13. The method of claim 9, whereinthe first roaming parameters associated with the first wireless APinclude a first roam trigger parameter and a first roam delta parameter,and wherein the second roaming parameters associated with the secondwireless AP include a second roam trigger parameter and a second roamdelta parameter, wherein updating the first roaming parametersassociated with the first wireless AP comprises setting the first roamdelta parameter to a difference between the second roam triggerparameter and the first roam trigger parameter and setting the firstroam trigger parameter to a sum of the first roam trigger parameter andthe adaptation value multiplied by 3 db, and wherein updating the secondroaming parameters associated with the second wireless AP comprisessetting the second roam delta parameter to a negative value of the firstroam delta parameter and setting the second roam trigger parameter to adifference between the second roam trigger parameter and the adaptationvalue multiplied by 3 db.
 14. The method of claim 9, wherein M₁ isdetermined according to:$M_{1} = {\frac{1}{N_{w}}{\sum\limits_{N_{w}}\left\lbrack {{\frac{1}{N_{t}}{\sum\limits_{N_{t}}{\alpha \times {Normalized}\mspace{14mu} {IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}}}} + {\left( {1 - \alpha} \right) \times {Normalized}\mspace{14mu} {{RSSI}\left( {w,t} \right)}}} \right\rbrack}}$wherein 0≦M₁≦1, 0≦α≦1, N_(t) is a number of discrete measurements over apre-selected time period, N_(w) is a number of pre-selected observationsor realizations, notation (w,t) designates a discrete time sample indext and a realization number index w of each measurement; and M₂ isdetermined according to:$M_{2} = {\frac{1}{N_{w}}{\sum\limits_{N_{w}}\left\lbrack {{\frac{1}{N_{t}}{\sum\limits_{N_{t}}{\alpha \times {Normalized}\mspace{14mu} {IQ}\mspace{14mu} {{noise}\left( {w,t} \right)}}}} + {\left( {1 - \alpha} \right) \times {Normalized}\mspace{14mu} {{RSSI}\left( {w,t} \right)}}} \right\rbrack}}$wherein 0≦M₂≦1, 0≦α≦1, N_(t) is a number of discrete measurements over apre-selected time period, N_(w) is a number of pre-selected observationsor realizations, and notation (w,t) designates a discrete time sampleindex t and a realization number index w of each measurement.
 15. Themethod of claim 9, further comprising: prior to determining that thedevice has roamed to the second wireless AP in the wirelesscommunication network, periodically updating the M₁ by summing a currentvalue for the first roaming metric (M_(1t1)) multiplied by a forgettingfactor (f) and a previous value for the first roaming metric (M_(1t0))multiplied by (1−f), wherein 0<=f<=1; and adjusting the forgettingfactor (f) at each update of the M₁ by a factor equal to 2*(f−0.5) timesa difference between the previous value of the first roaming metric(M_(1t0)) and the current value of the first roaming metric (M_(1t1))when an absolute value of this factor is larger than a predeterminedconstant; prior to determining that the adaptation value is not equal tozero, periodically updating the M₂ by summing a current value for thesecond roaming metric (M_(2t0)) multiplied by the forgetting factor (f)previous value for the first roaming metric (M_(2t1)) multiplied by(1−f); and adjusting the forgetting factor (f) at each update of the M₂by a factor equal to 2*(f−0.5) times a difference between the previousvalue of the second roaming metric (M_(2t0)) and the current value ofthe second roaming metric (M_(2t1)) when an absolute value of thisfactor is larger than a predetermined constant.
 16. The method of claim13, wherein determining that the wireless communication device hasroamed to a second wireless AP in the wireless communication networkcomprises determining that a roaming condition has been met and whereinthe roaming condition is determined to be met when the RSSI for thefirst wireless AP is less than or equal to a scan trigger threshold andthe RSSI for the first wireless AP is less than the value of the firstroam trigger and a RSSI for the second wireless AP is greater than thesum of the RRSI of the first wireless AP and the first roam deltaparameter.
 17. A computer-readable medium storing a computer program,wherein execution of the computer program is for controlling a wirelesscommunication device to dynamically update roaming parameters associatedwith each respective one of a plurality of APs in the wirelesscommunication network that are stored in a memory of the wirelesscommunication device when the wireless communication device is operatingin the wireless communication network, by: (a) determining a firstroaming metric (M₁) for a first wireless AP (of the wirelesscommunication network when the wireless communication device is incommunication with the first wireless AP; (b) determining a secondroaming metric (M₂) for a second wireless AP of the wirelesscommunication network when the wireless communication device has roamedto the second wireless AP; (c) determining an adaptation value bysubtracting the M₂ from M₁; and (d) in response to determining that theadaptation value is not equal to zero, updating first roaming parametersassociated with the first wireless AP based on the adaptation value andstored first roaming parameters associated with the first wireless APand updating second roaming parameters associated with the secondwireless AP based on the adaptation value and stored second roamingparameters associated with the second wireless AP.
 18. Thecomputer-readable medium of claim 17, further comprising: (e) swappingthe first roaming parameters and the M₁ associated with the firstwireless AP with the second roaming parameters and the M₂ associatedwith the second wireless AP, respectively; (f) designating the secondwireless AP as the first wireless AP (305, 310, 315); and, (g) repeating(b) through (f).
 19. The computer-readable medium of claim 17, whereinthe M₁ is determined based on a first double average value of a firstradio strength indicator (RSSI) and a first double average value of afirst in-phase and quadrature (IQ) noise for the first wireless AP, andthe M₂ is determined based on a second double average value of a secondradio strength indicator (RSSI) and a second double average value of asecond in-phase and quadrature (IQ) noise for the second wireless AP.20. The computer-readable medium of claim 17, wherein the first roamingparameters associated with the first wireless AP include a first roamtrigger parameter and a first roam delta parameter, and wherein thesecond roaming parameters associated with the second wireless AP includea second roam trigger parameter and a second roam delta parameter,wherein updating the first roaming parameters associated with the firstwireless AP comprises setting the first roam delta parameter to adifference between the second roam trigger parameter and the first roamtrigger parameter and setting the first roam trigger parameter to a sumof the first roam trigger parameter and the adaptation value multipliedby 3 db, and wherein updating the second roaming parameters associatedwith the second wireless AP comprises setting the second roam deltaparameter to a negative value of the first roam delta parameter andsetting the second roam trigger parameter to a difference between thesecond roam trigger parameter and the adaptation value multiplied by 3db.